package aphorism;

import java.awt.Color;
import java.util.ArrayList;


/**
 * Liefert die abstrakte Funktionalitaet fuer Farbwaehler.
 * <br>
 * Farben werden als ColorItem abgelegt und benutzt.
 * <br>
 * Der ActionListener wird von den abgeleiteten Klassen implementiert.
 * 
 * @author Patrick Bauer
 * @version 1.0
 * @see ColorItem
 */
abstract public class AbstractColorSelect extends AbstractSelect {
    /**
     * Container fuer Farben als ColorItem
     * @see ColorItem
     */
    private ArrayList<ColorItem> colorItemList;

    /**
     * Befuellt die colorItemList mit Elementen, fuegt diese dann der Combobox hinzu
     * <br>
     * und setzt den ActionListener auf die eigene Instanz.
     */
    public AbstractColorSelect() {
        this.colorItemList = new ArrayList<ColorItem>();
        this.colorItemList.add(new ColorItem("Default", null));
        this.colorItemList.add(new ColorItem("weiss", Color.white));
        this.colorItemList.add(new ColorItem("schwarz", Color.black));
        this.colorItemList.add(new ColorItem("gruen", Color.green));
        this.colorItemList.add(new ColorItem("blau", Color.blue));
        this.colorItemList.add(new ColorItem("pink", Color.pink));
        this.colorItemList.add(new ColorItem("grau", Color.gray));
        this.colorItemList.add(new ColorItem("rot", Color.red));
        this.colorItemList.add(new ColorItem("orange", Color.orange));
        this.colorItemList.add(new ColorItem("Zufall"));

        for(ColorItem item: this.colorItemList) {
            this.addItem(item);
        }

       this.addActionListener(this);
    }
    
}
